package Management;

import javax.print.DocFlavor;
import java.io.File;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.Scanner;

public class Menu {
    public static void main(String[] args) throws SQLException, ClassNotFoundException, IOException {
        Scanner sc = new Scanner(System.in);
        while (true) {
            // 实例化
            // TestMain4 tt = new TestMain4();
            // 调用方法
            //  tt.Time();
            //教师表登陆界面
            Time.main(null);
            System.out.println("---------------------------------");
            System.out.println("---------------------------------");
            System.out.println("---------教师表系统模块-------------");
            System.out.println("------------1.登录----------------");
            System.out.println("------------0.退出----------------");
            System.out.println("---------------------------------");
            System.out.println("---------------------------------");
            String str = sc.nextLine();
            //如果输入1的话 进行登录操作，输入0，退出
            if ("1".equals(str)) {
                // "1" == str不允许
                System.out.println("--------请输入用户名----------");
                String username = sc.nextLine();
                //输入用户名
                System.out.println("--------请输入密码-----------");
                String password = sc.nextLine();
                //输入密码
                LoginDao dao = new LoginDao();
                List<UserPojo> ulist = dao.findByUname(username);
                //实例调用

                if (ulist.size() == 1) {
                    if (ulist.get(0).getPassword().equals(password)) {
                        System.out.println("登录成功");
                        //登录成功显示
                        while (true) {
                            System.out.println("-------1.添加教师信息------");
                            //输入1进行添加教师信息
                            System.out.println("-------2.删除教师信息------");
                            //输入2进行删除教师信息
                            System.out.println("-------3.导入教师信息------");
                            //输入3进行导入Excel表中教师信息
                            System.out.println("-------4.导出教师信息------");
                            //输入4进行导出数据库的教师信息
                            System.out.println("-------5.查询教师信息------");
                            //输入5进行查询数据库中教师信息
                            System.out.println("-------6.退出------");
                            //输入6退出
                            System.out.println("-------------");
                            System.out.println("-------------");
                            String str1 = sc.nextLine();
                            //进入添加教师信息界面
                            if ("1".equals(str1)) {
                                System.out.println("-----添加教师信息：教师号--------");
                                String v1 = sc.nextLine();
                                //输入教师号
                                System.out.println("-----添加教师信息：姓名--------");
                                String v2 = sc.nextLine();
                                //输入教师姓名
                                System.out.println("-----添加教师信息：性别--------");
                                String v3 = sc.nextLine();
                                //输入教师性别
                                System.out.println("-----添加教师信息：课程号--------");
                                String v4 = sc.nextLine();
                                //输入课程号
                                /*System.out.println("-----添加学生信息：入学成绩--------");
                                int v5 = Integer.parseInt(sc.nextLine());
                                System.out.println("-----添加学生信息：专业--------");
                                String v6 = sc.nextLine();
                                System.out.println("-----添加学生信息：班号----------");
                                int v7 = Integer.parseInt(sc.nextLine());*/
                                // int 变更了几条记录
                                int r = dao.addUserInfo(v1, v2, v3, v4);
                                //变更了四条数据
                                System.out.println("添加成了" + r + "条数据");
                            }
 //删除操作
                                else if ("2".equals(str1)) {
                                deleteteacher();
                            }
//  导入学生信息
                            else if ("3".equals(str1)) {
                                // TODO其他处理
                                while (true) {
                                    //查询表循环

                                    System.out.println("-----请输入文件excel--------");
                                    System.out.println("-----0.返回上一级l--------");
                                    //控制台显示
                                    String path = sc.nextLine();
                                    if ("0".equals(path)) {
                                        break;
                                        //结束
                                    } else {
                                        // 文件存不存在
                                        File file = new File(path);
                                        if (!file.exists()) {
                                            // 文件不存在的话
                                            System.out.println("-----文件不存在的话--------");
                                        } else {
                                            // 读取文件
                                            if (!file.exists()) {
                                                // 文件不存在的话
                                                System.out.println("-----文件不存在的话--------");
                                            } else {
                                                TeacherExcel se = new TeacherExcel();
                                                // 循环插入数据操作
                                                List<TeacherPojo> slist = se.readSTeacherInfo(file);

                                                // 循环插入数据操作
                                                TeacherDao studao = new TeacherDao();
                                                studao.insertAll(slist);

                                                System.out.println("---插入成功--");
                                                //插入成功显示
                                            }
                                        }
                                    }
                                }

                            }
//                             导出学生信息
                            else if ("4".equals(str1)) {
                                exportExcelTeacher();
                            }
                            else if ("5".equals(str1)) {
                                // SelectStudent();
                                System.out.println("--------请输入查询教师名----------");
                                //查询教师名时要输入教师姓名
                                String tname = sc.nextLine();
                                LoginDao dao1 = new LoginDao();
                                //更新
                                List<TeacherPojo> slist = dao1.selectBySname(tname);
                                //实例调用


                            }
                            else if ("6".equals(str1)) {
                                return;
                                //结束
                            }


                        }
                    }else{
                        System.out.println("用户名存在，密码不正确");
                        //若密码不正确
                    }
                } else {
                    System.out.println("有问题了呀！用户名不存在");
                    //若用户名不正确
                }
        } else if ("0".equals(str)) {
            System.exit(0);
        } else {
            System.out.println("请重新输入");
                //若没有输入直接查询
        }
    }
}

    private static void exportExcelTeacher() throws SQLException, IOException {
        while (true) {
    //        System.out.println("--------1.按班级导出--------------");
            System.out.println("--------1.按课程号导出--------------");
            // 监控控制台
            System.out.println("--------0.退出--------------");
            // 监控控制台
            //输入端界面
            Scanner sc = new Scanner(System.in);
            //输入语句
            String sel = sc.nextLine();
            if ("0".equals(sel)) {
                return;
                // 结束
            }
            else if ("1".equals(sel)) {
                while (true) {
                    System.out.println("--------输入课程编号--------------");
                    //课程号导出界面
                    System.out.println("--------0.退出--------------");
                    //课程号导出界面
                    TeacherDao dao = new TeacherDao();
                    //更新
                    String cno = sc.nextLine();
                    if ("0".equals(cno)) {
                        break;
                    } else {
                        // 字符串转换成190803
//                     int cno1 = Integer.parseInt(cno);

                        List<TeacherPojo> slist = dao.findStudentClassByCid(cno);
//                        for (int i = 0; i < slist.size(); i++) {
//                            System.out.println(slist.get(i).getCid() + "@" + slist.get(i).getSname());
//                        }
                        if (slist.size() == 0) {
                            // 没有信息
                            System.out.println("没有信息");
                            continue;
                        } else {
                            System.out.println("--------输入导出的地址--------------");
                            //导出地址界面显示
                            String filepath = sc.nextLine();
                            TeacherExcel excele = new TeacherExcel();
                            // 根据 文件路径和 集合 组装导出
                            excele.exportto(filepath, slist);
                            System.out.println("导出成功！");
                            //成功导出界面显示
                        }
                    }
                }


            } else {
                // 其他处理
                // TODO


            }
        }

    }

    private static void deleteteacher() throws SQLException {
        while (true) {
            System.out.println("--------请输入教师号--------------");
            //监控控制台
            System.out.println("--------0.退出--------------");

            // 监控控制台
            Scanner sc = new Scanner(System.in);
            //更新
            String tno = sc.nextLine();
            //输入是否存在
            if ("0".equals(tno)) {
                return;
                // 结束
            } else {
                // 数据的操作
                TeacherDao dao = new TeacherDao();
                //更新
                int r = dao.deleteByTno(tno);
                //定义r
                if (r == 0) {
                    System.out.println("教师号不存在");
                    //若输出的教师号不存在
                } else {
                    System.out.println("删除成功" + r + "条");

                    //删除成功显示
                }
            }
        }
    }
}


